From: Adel Gadllah Date: Thu, 24 Feb 2011 10:30:46 +0000 (+0100) Subject: XDND: Remove the switch timeout in _onDragEnd X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~8869 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6d6ec46f254ecac7879218a64840e1922a2ac1b8;p=gnome-shell.git XDND: Remove the switch timeout in _onDragEnd When the user cancels the drag while hovering over a window the timeout handler will throw an exception because the drag actor will be destroyed at this point. Fix that by removing the timeout in _onDragEnd. --- diff --git a/js/ui/overview.js b/js/ui/overview.js index fbe8c3e15..d0b3affc1 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -213,10 +213,19 @@ Overview.prototype = { global.screen.get_workspace_by_index(this._lastActiveWorkspaceIndex).activate(time); this.hideTemporarily(); } + this._resetWindowSwitchTimeout(); this._lastHoveredWindow = null; DND.removeMonitor(this._dragMonitor); }, + _resetWindowSwitchTimeout: function() { + if (this._windowSwitchTimeoutId != 0) { + Mainloop.source_remove(this._windowSwitchTimeoutId); + this._windowSwitchTimeoutId = 0; + this._needsFakePointerEvent = false; + } + }, + _fakePointerEvent: function() { let display = Gdk.Display.get_default(); let deviceManager = display.get_device_manager(); @@ -239,11 +248,7 @@ Overview.prototype = { this._lastHoveredWindow = null; - if (this._windowSwitchTimeoutId != 0) { - Mainloop.source_remove(this._windowSwitchTimeoutId); - this._windowSwitchTimeoutId = 0; - this._needsFakePointerEvent = false; - } + this._resetWindowSwitchTimeout(); if (targetIsWindow) { this._lastHoveredWindow = dragEvent.targetActor._delegate.metaWindow;